package com.piggy.logi.sys.bo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.piggy.common.core.annotation.Excel;
import com.piggy.common.core.web.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/**
 * 调度车次信息分页查询对象 logi_schedule
 *
 * @author piggy
 * @date 2023-09-06
 */

@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel("调度车次信息分页查询对象")
public class LogiScheduleQueryBo extends BaseEntity {

	/** 主键 */
	@JsonFormat(shape = JsonFormat.Shape.STRING)
	@ApiModelProperty("主键")
	private Long scheduleId;
	/** 调度/车次订单号 YYYYMMDD+序号 */
	@ApiModelProperty("调度单号 YYYYMMDD+序号")
	private String scheduleNo;
	/** 车次订单号 YYYYMMDD+序号 */
	@ApiModelProperty("车次号 YYYYMMDD+序号")
	private String busNo;
	/** 线路id */
	@JsonFormat(shape = JsonFormat.Shape.STRING)
	@ApiModelProperty("线路id")
	private Long lineId;
	/** 司机id */
	@JsonFormat(shape = JsonFormat.Shape.STRING)
	@ApiModelProperty("司机id")
	private Long driverId;
	/** 车辆id */
	@JsonFormat(shape = JsonFormat.Shape.STRING)
	@ApiModelProperty("车辆id")
	private Long carId;
	/** 流程状态 */
	@ApiModelProperty("流程状态")
	private Integer flowStatus;

	/** 预计发车时间 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty("预计发车时间")
	private Date estDepartTimeStart;
	/** 预计发车时间 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty("预计发车时间")
	private Date estDepartTimeEnd;

	/** 发车时间 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty("发车时间")
	private Date departTimeStart;
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty("发车时间")
	private Date departTimeEnd;

	/** 预计到达时间 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty("预计到达时间")
	private Date estArriveTimeStart;
	/** 预计到达时间 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty("预计到达时间")
	private Date estArriveTimeEnd;

	/** 到达时间 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty("到达时间")
	private Date arriveTimeStart;
	/** 到达时间 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty("到达时间")
	private Date arriveTimeEnd;

	/** 完成时间 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty("完成时间")
	private Date finishedTimeStart;
	/** 完成时间 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty("完成时间")
	private Date finishedTimeEnd;

	@ApiModelProperty("流程状态")
	private List<Integer> statusList;

	@ApiModelProperty("调度/车次订单号 YYYYMMDD+序号集合")
	private List<String> scheduleNos;

	@ApiModelProperty("运单编号")
	private String outCode;

	/** 客户名称 */
	@ApiModelProperty("客户名称")
	private String customerName;
	/** 车辆id */
	@JsonFormat(shape = JsonFormat.Shape.STRING)
	@ApiModelProperty("运单ID")
	private Long waybillId;
}
